home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / biz / dopus / DOpus414JRsrc.lha / DirectoryOpus4 / Config / data.c < prev    next >
C/C++ Source or Header  |  2000-04-01  |  19KB  |  570 lines

  1. /*
  2.  
  3. Directory Opus 4
  4. Original GPL release version 4.12
  5. Copyright 1993-2000 Jonathan Potter
  6.  
  7. This program is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU General Public License
  9. as published by the Free Software Foundation; either version 2
  10. of the License, or (at your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20.  
  21. All users of Directory Opus 4 (including versions distributed
  22. under the GPL) are entitled to upgrade to the latest version of
  23. Directory Opus version 5 at a reduced price. Please see
  24. http://www.gpsoft.com.au for more information.
  25.  
  26. The release of Directory Opus 4 under the GPL in NO WAY affects
  27. the existing commercial status of Directory Opus 5.
  28.  
  29. */
  30.  
  31. #include "config.h"
  32. #define VERSION "4.13"
  33.  
  34. char *version="$VER: ConfigOpus " VERSION " (" __DATE__ ") by Jacek Rzeuski";
  35.  
  36. UWORD drawinfo[]={
  37.     0, /* DETAILPEN */
  38.     1, /* BLOCKPEN */
  39.     1, /* TEXTPEN */
  40.     2, /* SHINEPEN */
  41.     1, /* SHADOWPEN */
  42.     3, /* FILLPEN */
  43.     1, /* FILLTEXTPEN */
  44.     0, /* BACKGROUNDPEN */
  45.     3, /* HIGHLIGHTTEXTPEN */
  46.     1, /* BARDETAILPEN */
  47.     2, /* BARBLOCKPEN */
  48.     1, /* BARTRIMPEN */
  49.     (UWORD)~0};
  50.  
  51. struct TagItem
  52.     scr_taglist[]={
  53.         {SA_Pens,(ULONG)drawinfo},
  54.         {SA_DisplayID,0},
  55.         {TAG_END,0}};
  56.  
  57. struct ExtNewScreen configscr={
  58.     0,0,640,210,0,0,1,
  59.     HIRES,CUSTOMSCREEN|SCREENBEHIND|NS_EXTENDED,
  60.     &sfont,"ConfigOpus " VERSION,NULL,NULL,scr_taglist};
  61.  
  62. struct NewWindow
  63.     configwin={
  64.         0,11,640,0,
  65.         255,255,
  66.         IDCMP_MOUSEBUTTONS|IDCMP_GADGETUP|IDCMP_GADGETDOWN|IDCMP_MENUPICK|
  67.             IDCMP_MOUSEMOVE|IDCMP_INACTIVEWINDOW|IDCMP_RAWKEY,
  68.         WFLG_ACTIVATE|WFLG_REPORTMOUSE|WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_NEWLOOKMENUS,
  69.         NULL,NULL,
  70.         NULL,
  71.         NULL,NULL,
  72.         0,0,0,0,
  73.         CUSTOMSCREEN};
  74.  
  75. struct DOpusBase *DOpusBase;
  76. struct GfxBase *GfxBase = NULL;
  77. struct Library *LayersBase = NULL;
  78. struct IntuitionBase *IntuitionBase;
  79. struct Library *DiskfontBase = NULL;
  80. struct Library *WorkbenchBase = NULL;
  81. struct Library *IconBase = NULL;
  82. struct PPBase *PPBase = NULL;
  83. struct Screen *Screen;
  84. struct Window *Window;
  85. struct ViewPort *vp;
  86. struct RastPort *rp;
  87. struct Process *myproc;
  88. struct IntuiMessage *IMsg;
  89. APTR wsave,realwsave;
  90. char *spacestring="                                                                                                                                                      ";
  91.  
  92. char fontbuf[50];
  93. struct TextAttr
  94.     sfont={(STRPTR)fontbuf,8,0,0},
  95.     bsfont={(STRPTR)fontbuf,8,FSF_BOLD,0};
  96. struct Config *config,*undoconfig;
  97. struct dopusfiletype *firsttype;
  98. struct dopushotkey *firsthotkey;
  99. struct dopusgadgetbanks *firstbank,*curbank;
  100. struct DOpusRemember *typekey,*fontkey;
  101.  
  102. char configname[256],loadnamebuf[256];
  103.  
  104. int version2;
  105.  
  106. struct MsgPort *conport,*cmdport,*appport;
  107. /*
  108. struct MsgPort **clip_port;
  109. struct IOClipReq *clip_io;
  110. */
  111. struct ConfigStuff cstuff;
  112. struct DOpusRemember *mainkey,*gadgetkey,*tickkey,*screenkey,*clipkey,*buttonkey;
  113. struct Gadget *maingad,*tickgad,*gadgads,*menugads,*drivegads;
  114. struct Clip *firstclip;
  115. int tickcount;
  116. struct dopusconfigmsg msg;
  117.  
  118. int lchanged,changed;
  119.  
  120. struct Image
  121.     *checkonimage,*checkoffimage,
  122.     *buttononimage,*buttonoffimage,
  123.     copy_checkonimage,copy_checkoffimage;
  124.  
  125. struct RMBGadget
  126.     insertbankrmb={
  127.         NULL,0,0,104,12,RGF_ALTTEXT,1,
  128.         {{NULL,2,1,100,10,1,0},{NULL,2,1,100,10,1,0}}},
  129.     nextbankrmb={
  130.         &insertbankrmb,0,0,104,12,RGF_ALTTEXT,0,
  131.         {{NULL,2,1,100,10,1,0},{NULL,2,1,100,10,1,0}}},
  132.     formatclearrmb={
  133.         NULL,465,137,104,12,RGF_ALTTEXT,0,
  134.         {{NULL,2,1,100,10,1,0},{NULL,2,1,100,10,1,0}}},
  135.     sampleclearrmb={
  136.         NULL,0,0,104,12,RGF_ALTTEXT,0,
  137.         {{NULL,2,1,100,10,1,0},{NULL,2,1,100,10,1,0}}};
  138.  
  139. char
  140.     *commandlist[95],
  141.     *arglist[18],
  142.     *classopslist[12];
  143.  
  144. int classopvals[]={
  145.     FTYC_AND,FTYC_MATCH,FTYC_MATCHBITS,FTYC_MATCHCOMMENT,FTYC_MATCHDATE,
  146.     FTYC_MATCHNAME,FTYC_MATCHSIZE,FTYC_MOVE,FTYC_MOVETO,FTYC_OR,FTYC_SEARCHFOR};
  147.  
  148. struct DOpusListView
  149.     cmdlist={
  150.         1,NULL,0,0,332,88,NULL,commandlist,NULL,DLVF_HIREC,8,
  151.         0,0,0,0,0,0,0,0,0,0,-1,NULL},
  152.     listlist={
  153.         1,NULL,0,0,0,0,NULL,NULL,NULL,DLVF_HIREC,8,
  154.         0,0,0,0,0,0,0,0,0,0,-1,NULL},
  155.     helplist={
  156.         1,NULL,0,0,516,131,NULL,NULL,NULL,DLVF_HIREC,8,
  157.         0,0,0,0,0,0,0,0,0,0,-1,NULL},
  158.     modulelist={
  159.         5,NULL,0,0,338,56,NULL,NULL,NULL,
  160.         DLVF_MULTI|DLVF_TTOP|DLVF_CHECK|DLVF_HIREC,8,0,0,0,0,0,0,0,0,0,0,-1,&languagelist},
  161.     languagelist={
  162.         6,NULL,0,0,338,56,NULL,NULL,NULL,
  163.         DLVF_CHECK|DLVF_LEAVE|DLVF_TTOP|DLVF_HIREC,8,0,0,0,0,0,0,0,0,0,0,-1,NULL};
  164.  
  165. char *external_module_list[]={
  166.     "ConfigOpus",
  167.     "Diskcopy, Format, Install",
  168.     "IconInfo",
  169.     "Print, Printdir",
  170.     NULL};
  171.  
  172. char *external_module_name[]={
  173.     "ConfigOpus",
  174.     "DOpus_Disk",
  175.     "DOpus_Icon",
  176.     "DOpus_Print",
  177.     NULL};
  178.  
  179. int external_module_map[]={
  180.     65536,
  181.     1,
  182.     4,
  183.     2};
  184.  
  185. struct Gadget
  186.     cmdcancelgad={
  187.         NULL,124,102,104,12,GFLG_GADGHCOMP,GACT_RELVERIFY,GTYP_BOOLGADGET,
  188.         NULL,NULL,NULL,0,NULL,0,NULL},
  189.     helpcancelgad={
  190.         NULL,226,147,104,12,GFLG_GADGHCOMP,GACT_RELVERIFY,GTYP_BOOLGADGET,
  191.         NULL,NULL,NULL,0,NULL,0,NULL},
  192.     listokaygad[3]={
  193.         {&listokaygad[1],10,0,104,12,GFLG_GADGHCOMP,GACT_RELVERIFY,GTYP_BOOLGADGET,
  194.         NULL,NULL,NULL,0,NULL,1,NULL},
  195.         {NULL,0,0,104,12,GFLG_GADGHCOMP,GACT_RELVERIFY,GTYP_BOOLGADGET,
  196.         NULL,NULL,NULL,0,NULL,0,NULL},
  197.         {NULL,0,0,104,12,GFLG_GADGHCOMP,GACT_RELVERIFY,GTYP_BOOLGADGET,
  198.         NULL,NULL,NULL,0,NULL,2,NULL}};
  199.  
  200. struct NewWindow
  201.     requestwin={
  202.         0,0,0,0,
  203.         255,255,
  204.         IDCMP_MOUSEBUTTONS|IDCMP_GADGETUP|IDCMP_GADGETDOWN|IDCMP_MOUSEMOVE|IDCMP_VANILLAKEY,
  205.         WFLG_ACTIVATE|WFLG_RMBTRAP|WFLG_DRAGBAR|WFLG_DEPTHGADGET,
  206.         NULL,NULL,NULL,NULL,NULL,0,0,0,0,CUSTOMSCREEN};
  207.  
  208. char filebuf[FILEBUF_SIZE],dirbuf[258];
  209. struct DOpusFileReq filereq={
  210.     NULL,dirbuf,filebuf,NULL,162,22,10,0,NULL,NULL};
  211.  
  212. char *defdir[5]={"","SYS:","SYS:","S:","REXX:"};
  213.  
  214. struct newdopusfunction *selgad;
  215. struct Gadget *seligad;
  216.  
  217. struct ColourSel coloursel[]={
  218.     {COLBIT_STATUS,149,57,598,76},
  219.     {COLBIT_SELDISKNAME,149,77,373,86},
  220.     {COLBIT_DISKNAME,374,75,598,86},
  221.     {COLBIT_SELDIRECTORY,151,88,353,95},
  222.     {COLBIT_DIRECTORY,151,96,353,103},
  223.     {COLBIT_SELFILE,151,104,353,111},
  224.     {COLBIT_FILE,151,112,353,128},
  225.     {COLBIT_FILE,394,88,596,128},
  226.     {COLBIT_SLIDERS,356,87,391,111},
  227.     {COLBIT_SLIDERS,149,130,319,140},
  228.     {COLBIT_SLIDERS,428,130,599,140},
  229.     {COLBIT_ARROWS,320,130,352,153},
  230.     {COLBIT_ARROWS,392,130,427,153},
  231.     {COLBIT_ARROWS,356,112,391,129},
  232.     {COLBIT_TINYGADS,356,130,391,153},
  233.     {COLBIT_TINYGADS,491,153,598,162},
  234.     {COLBIT_CLOCK,149,153,490,162},
  235.     {COLBIT_3DBOXES,160,167,371,178},
  236.     {COLBIT_REQUESTER,376,167,587,178},
  237.     {COLBIT_STRINGS,149,141,319,152},
  238.     {COLBIT_SELSTRINGS,428,141,599,152},
  239.     {-1,0,0,0,0}};
  240.  
  241. char **screenmodelist;
  242. struct ScreenMode *firstmode,*screenmode;
  243.  
  244. struct Image
  245.     open_barimage={0,0,0,0,0,NULL,0,0,NULL},
  246.     paste_barimage={0,0,0,0,0,NULL,0,0,NULL},
  247.     erase_barimage={0,0,0,0,0,NULL,0,0,NULL},
  248.     deleteclass_barimage={0,0,0,0,0,NULL,0,0,NULL};
  249.  
  250. struct IntuiText
  251.     newtext={0,0,JAM1,1,1,NULL,NULL,NULL},
  252.     opentext={0,0,JAM1,1,1,NULL,NULL,NULL},
  253.     savetext={0,0,JAM1,1,1,NULL,NULL,NULL},
  254.     saveastext={0,0,JAM1,1,1,NULL,NULL,NULL},
  255.  
  256.     cuttext={0,0,JAM1,1,1,NULL,NULL,NULL},
  257.     copytext={0,0,JAM1,1,1,NULL,NULL,NULL},
  258.     pastetext={0,0,JAM1,1,1,NULL,NULL,NULL},
  259.     erasetext={0,0,JAM1,1,1,NULL,NULL,NULL},
  260.     clearcliptext={0,0,JAM1,1,1,NULL,NULL,NULL},
  261.  
  262.     newclasstext={0,0,JAM1,1,1,NULL,NULL,NULL},
  263.     editclasstext={0,0,JAM1,1,1,NULL,NULL,NULL},
  264.     duplicateclasstext={0,0,JAM1,1,1,NULL,NULL,NULL},
  265.     deleteclasstext={0,0,JAM1,1,1,NULL,NULL,NULL},
  266.     clearclasstext={0,0,JAM1,1,1,NULL,NULL,NULL},
  267.  
  268.     gadrowstext[5],
  269.  
  270.     paintmodetext={0,0,JAM1,1,1,NULL,NULL,NULL};
  271.  
  272. struct MenuItem
  273.     projectitems[]={
  274.         {&projectitems[1],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP|COMMSEQ,0,
  275.         (APTR)&newtext,NULL,'D',NULL,0xffff},
  276.         {&projectitems[2],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP|COMMSEQ,0,
  277.         (APTR)&opentext,NULL,'O',NULL,0xffff},
  278.         {&projectitems[3],0,0,0,2,HIGHNONE,0,
  279.         (APTR)&open_barimage,NULL,0,NULL,0xffff},
  280.         {&projectitems[4],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP|COMMSEQ,0,
  281.         (APTR)&savetext,NULL,'S',NULL,0xffff},
  282.         {NULL,0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP|COMMSEQ,0,
  283.         (APTR)&saveastext,NULL,'A',NULL,0xffff}},
  284.     edititems[]={
  285.         {&edititems[1],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  286.         (APTR)&cuttext,NULL,0,NULL,0xffff},
  287.         {&edititems[2],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  288.         (APTR)©text,NULL,0,NULL,0xffff},
  289.         {&edititems[3],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  290.         (APTR)&pastetext,NULL,0,NULL,0xffff},
  291.         {&edititems[4],0,0,0,2,HIGHNONE,0,
  292.         (APTR)&paste_barimage,NULL,0,NULL,0xffff},
  293.         {&edititems[5],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  294.         (APTR)&erasetext,NULL,0,NULL,0xffff},
  295.         {&edititems[6],0,0,0,2,HIGHNONE,0,
  296.         (APTR)&erase_barimage,NULL,0,NULL,0xffff},
  297.         {NULL,0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  298.         (APTR)&clearcliptext,NULL,0,NULL,0xffff}},
  299.     classitems[]={
  300.         {&classitems[1],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  301.         (APTR)&newclasstext,NULL,0,NULL,0xffff},
  302.         {&classitems[2],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  303.         (APTR)&editclasstext,NULL,0,NULL,0xffff},
  304.         {&classitems[3],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  305.         (APTR)&duplicateclasstext,NULL,0,NULL,0xffff},
  306.         {&classitems[4],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  307.         (APTR)&deleteclasstext,NULL,0,NULL,0xffff},
  308.         {&classitems[5],0,0,0,2,HIGHNONE,0,
  309.         (APTR)&deleteclass_barimage,NULL,0,NULL,0xffff},
  310.         {&classitems[6],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  311.         (APTR)&opentext,NULL,0,NULL,0xffff},
  312.         {&classitems[7],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  313.         (APTR)&savetext,NULL,0,NULL,0xffff},
  314.         {&classitems[8],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  315.         (APTR)&saveastext,NULL,0,NULL,0xffff},
  316.         {NULL,0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP,0,
  317.         (APTR)&clearclasstext,NULL,0,NULL,0xffff}},
  318.     gadrowsitems[]={
  319.         {&gadrowsitems[1],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP|CHECKIT,30,
  320.         (APTR)&gadrowstext[0],NULL,0,NULL,0xffff},
  321.         {&gadrowsitems[2],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP|CHECKIT,29,
  322.         (APTR)&gadrowstext[1],NULL,0,NULL,0xffff},
  323.         {&gadrowsitems[3],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP|CHECKIT,27,
  324.         (APTR)&gadrowstext[2],NULL,0,NULL,0xffff},
  325.         {&gadrowsitems[4],0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP|CHECKIT,23,
  326.         (APTR)&gadrowstext[3],NULL,0,NULL,0xffff},
  327.         {NULL,0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP|CHECKIT,15,
  328.         (APTR)&gadrowstext[4],NULL,0,NULL,0xffff}},
  329.     neatstuffitem={
  330.         NULL,0,0,0,0,ITEMTEXT|ITEMENABLED|HIGHCOMP|CHECKIT|MENUTOGGLE,0,
  331.         (APTR)&paintmodetext,NULL,0,NULL,0xffff};
  332.  
  333. struct Menu
  334.     projectmenu={NULL,8,0,0,0,MENUENABLED,NULL,projectitems},
  335.     gadrowsmenu={&neatstuffmenu,0,0,0,0,MENUENABLED,NULL,gadrowsitems},
  336.     editmenu={NULL,8,0,0,0,MENUENABLED,NULL,edititems},
  337.     classmenu={NULL,0,0,0,0,MENUENABLED,NULL,classitems},
  338.     neatstuffmenu={NULL,0,0,0,0,MENUENABLED,NULL,&neatstuffitem};
  339.  
  340. int changed,curoperation,clipcount;
  341.  
  342. USHORT
  343.     defpalettes[11][4]={
  344.         {0xaaa,0x000,0xfff,0x68b},
  345.         {0,0,0,0},
  346.         {0xba9,0x002,0xfff,0x68b},
  347.         {0x8ac,0x002,0xfff,0xfc9},
  348.         {0x8ac,0x002,0xfff,0xe97},
  349.         {0x5ba,0x002,0xeef,0x57a},
  350.         {0x9bd,0x002,0xfff,0x68b},
  351.         {0xa98,0x321,0xfee,0xfdb},
  352.         {0xccb,0x003,0xfff,0x9ab},
  353.         {0xc99,0x002,0xfee,0xb67},
  354.         {0xa96,0x002,0xfff,0x779}},
  355.  
  356.     def_dopus_palette[16]={
  357.         0xaaa,0x000,0xfff,0x05b,0xea4,0x707,0xff0,0xc20,
  358.         0xf80,0xf0f,0x963,0x0f9,0x4f3,0x000,0xfff,0x259};
  359.  
  360. char *palettenames[14];
  361.  
  362. char *fontplacenames[FONT_COUNT+1];
  363.  
  364. int fontplaceflags[]={
  365.     FFLAG_8ONLY,FFLAG_NOPROP,FFLAG_NOPROP,0,0,0,0,0,FFLAG_NOPROP,0,0,0};
  366.  
  367. int fontplacevals[]={
  368.     FONT_CLOCK,FONT_GADGETS,FONT_MENUS,FONT_NAMES,FONT_DIRS,    
  369.     FONT_GENERAL,FONT_ICONIFY,FONT_STRING,FONT_REQUEST,
  370.     FONT_SCREEN,FONT_STATUS,FONT_TEXT};
  371.  
  372. struct DOpusListView
  373.     palettelist={
  374.         2,NULL,0,0,250,56,NULL,palettenames,NULL,
  375.         DLVF_SLOW|DLVF_HIREC,8,0,0,0,0,0,0,0,0,0,0,-1,NULL},
  376.     fontplacelist={
  377.         1,NULL,0,0,176,64,NULL,fontplacenames,NULL,
  378.         DLVF_SLOW|DLVF_LEAVE|DLVF_HIREC,8,0,0,0,0,0,0,0,0,0,0,-1,&fontlistview},
  379.     fontlistview={
  380.         2,NULL,0,0,176,64,NULL,NULL,NULL,
  381.         DLVF_SLOW|DLVF_LEAVE|DLVF_HIREC,8,0,0,0,0,0,0,0,0,0,0,-1,&fontsizelistview},
  382.     fontsizelistview={
  383.         3,NULL,0,0,32,64,NULL,NULL,NULL,
  384.         DLVF_SLOW|DLVF_LEAVE|DLVF_HIREC,8,0,0,0,0,0,0,0,0,0,0,-1,NULL},
  385.     listformatlists[2]={
  386.         {1,NULL,0,0,196,56,NULL,formatnames,NULL,
  387.         DLVF_SLOW|DLVF_HIREC,8,0,0,0,0,0,0,0,0,0,0,-1,&listformatlists[1]},
  388.         {2,NULL,0,0,196,56,NULL,selectedformatnames,NULL,
  389.         DLVF_SLOW|DLVF_LEAVE|DLVF_CHECK|DLVF_TOGGLE|DLVF_HIREC,8,0,0,0,0,0,0,0,0,0,0,-1,NULL}},
  390.     iconlistview={
  391.         3,NULL,0,0,452,104,NULL,NULL,NULL,
  392.         DLVF_TTOP|DLVF_LEAVE|DLVF_HIREC,8,0,0,0,0,0,0,0,0,0,0,-1,NULL};
  393.  
  394. char
  395.     *formatnames[FORMAT_MAXNUM+1],
  396.     *selectedformatnames[FORMAT_MAXNUM+1];
  397.  
  398. int rowtrans[5]={0,1,2,3,6};
  399. struct TextFont *tfont;
  400. char
  401.     *fontdatabuf,**fontlist,*(**fontsizelist),
  402.     **noproplist,*(**nopropsizelist),
  403.     **only8list,*only8sizelist[]={"8",NULL};
  404. struct fileclass *firstclass;
  405. char classname[256];
  406. struct DOpusRemember *helpkey;
  407. char *helpbuffer;
  408. int helpsize;
  409. char currenthelpname[256];
  410.  
  411. char **fileclasslist;
  412.  
  413. char *fileclasstype[4];
  414.  
  415. char maxlength[5]={30,80,40,32,32};
  416.  
  417. extern USHORT pageflip_data1[];
  418. extern USHORT pageflip_data2[];
  419. extern USHORT dropbox_data[];
  420.  
  421. struct StringExtend stringex={NULL,{0,0},{0,0},0,NULL,NULL,{0,0,0,0}};
  422. struct Image dropboximage={0,0,83,42,2,dropbox_data,3,0,NULL};
  423.  
  424. struct DiskObject dropboxobj={
  425.     0,0, /* WB_DISKMAGIC,WB_DISKVERSION, */
  426.         {NULL,0,0,83,42,0,0,0,
  427.         (APTR)&dropboximage,NULL,NULL,NULL,NULL,NULL,NULL},
  428.     0,NULL,NULL,NO_ICON_POSITION,NO_ICON_POSITION,NULL,NULL,NULL};
  429.  
  430. void *appobject;
  431. struct AppMessage *appmsg;
  432.  
  433. unsigned char *fileview_buf;
  434. int fileview_lines,fileview_size,fileview_topline,fileview_type,fileview_oldtop;
  435. int fileview_offset,fileview_position;
  436. char *fileview_types[2];
  437. char *icontypes[3];
  438.  
  439. struct StringData stringdata;
  440.  
  441. int network;
  442.  
  443. char *ftype_funcs[]={
  444.     "AnsiRead",
  445.     "HexRead",
  446.     "LoopPlay",
  447.     "Play",
  448.     "Read",
  449.     "Show",
  450.     "User1",
  451.     "User2",
  452.     "User3",
  453.     "User4"};
  454.  
  455. short func_list_items[]={
  456.     STR_FUNCTIONLIST_ABOUT,
  457.     STR_FUNCTIONLIST_ADDICON,
  458.     STR_FUNCTIONLIST_ALARM,
  459.     STR_FUNCTIONLIST_ALL,
  460.     STR_FUNCTIONLIST_ANSIREAD,
  461.     STR_FUNCTIONLIST_AREXX,
  462.     STR_FUNCTIONLIST_ASSIGN,
  463.     STR_FUNCTIONLIST_BEEP,
  464.     STR_FUNCTIONLIST_BUFFERLIST,
  465.     STR_FUNCTIONLIST_BUTTONICONIFY,
  466.     STR_FUNCTIONLIST_CD,
  467.     STR_FUNCTIONLIST_CHECKFIT,
  468.     STR_FUNCTIONLIST_CLEARBUFFERS,
  469.     STR_FUNCTIONLIST_CLEARSIZES,
  470.     STR_FUNCTIONLIST_CLEARWIN,
  471.     STR_FUNCTIONLIST_CLONE,
  472.     STR_FUNCTIONLIST_COMMENT,
  473.     STR_FUNCTIONLIST_CONFIGURE,
  474.     STR_FUNCTIONLIST_CONTST,
  475.     STR_FUNCTIONLIST_COPY,
  476.     STR_FUNCTIONLIST_COPYAS,
  477.     STR_FUNCTIONLIST_COPYWINDOW,
  478.     STR_FUNCTIONLIST_DATESTAMP,
  479.     STR_FUNCTIONLIST_DEFAULTS,
  480.     STR_FUNCTIONLIST_DELETE,
  481.     STR_FUNCTIONLIST_DIRTREE,
  482.     STR_FUNCTIONLIST_DISKCOPY,
  483.     STR_FUNCTIONLIST_DISKCOPYBG,
  484.     STR_FUNCTIONLIST_DISKINFO,
  485.     STR_FUNCTIONLIST_DISPLAYDIR,
  486.     STR_FUNCTIONLIST_DOPUSTOBACK,
  487.     STR_FUNCTIONLIST_DOPUSTOFRONT,
  488.     STR_FUNCTIONLIST_ENCRYPT,
  489.     STR_FUNCTIONLIST_ERRORHELP,
  490.     STR_FUNCTIONLIST_ENDFUNCTION,
  491.     STR_FUNCTIONLIST_FORMAT,
  492.     STR_FUNCTIONLIST_FORMATBG,
  493.     STR_FUNCTIONLIST_GETDEVICES,
  494.     STR_FUNCTIONLIST_GETSIZES,
  495.     STR_FUNCTIONLIST_HELP,
  496.     STR_FUNCTIONLIST_HEXREAD,
  497.     STR_FUNCTIONLIST_HUNT,
  498.     STR_FUNCTIONLIST_ICONIFY,
  499.     STR_FUNCTIONLIST_ICONINFO,
  500.     STR_FUNCTIONLIST_INSTALL,
  501.     STR_FUNCTIONLIST_INSTALLBG,
  502.     STR_FUNCTIONLIST_LASTSAVED,
  503.     STR_FUNCTIONLIST_LOADCONFIG,
  504.     STR_FUNCTIONLIST_LOADSTRINGS,
  505.     STR_FUNCTIONLIST_LOOPPLAY,
  506.     STR_FUNCTIONLIST_MAKEDIR,
  507.     STR_FUNCTIONLIST_MODIFY,
  508.     STR_FUNCTIONLIST_MOVE,
  509.     STR_FUNCTIONLIST_MOVEAS,
  510.     STR_FUNCTIONLIST_NEWCLI,
  511.     STR_FUNCTIONLIST_NONE,
  512.     STR_FUNCTIONLIST_NOTIFY,
  513.     STR_FUNCTIONLIST_OTHERWINDOW,
  514.     STR_FUNCTIONLIST_PARENT,
  515.     STR_FUNCTIONLIST_PARENTLIST,
  516.     STR_FUNCTIONLIST_PLAY,
  517.     STR_FUNCTIONLIST_PLAYST,
  518.     STR_FUNCTIONLIST_PRINT,
  519.     STR_FUNCTIONLIST_PRINTDIR,
  520.     STR_FUNCTIONLIST_PROTECT,
  521.     STR_FUNCTIONLIST_QUIT,
  522.     STR_FUNCTIONLIST_READ,
  523.     STR_FUNCTIONLIST_REDRAW,
  524.     STR_FUNCTIONLIST_RELABEL,
  525.     STR_FUNCTIONLIST_REMEMBER,
  526.     STR_FUNCTIONLIST_RENAME,
  527.     STR_FUNCTIONLIST_RESCAN,
  528.     STR_FUNCTIONLIST_RESELECT,
  529.     STR_FUNCTIONLIST_RESTORE,
  530.     STR_FUNCTIONLIST_ROOT,
  531.     STR_FUNCTIONLIST_RUN,
  532.     STR_FUNCTIONLIST_SAVECONFIG,
  533.     STR_FUNCTIONLIST_SCANDIR,
  534.     STR_FUNCTIONLIST_SEARCH,
  535.     STR_FUNCTIONLIST_SELECT,
  536.     STR_FUNCTIONLIST_SETVAR,
  537.     STR_FUNCTIONLIST_SHOW,
  538.     STR_FUNCTIONLIST_SMARTREAD,
  539.     STR_FUNCTIONLIST_STOPST,
  540.     STR_FUNCTIONLIST_SWAPWINDOW,
  541.     STR_FUNCTIONLIST_TOGGLE,
  542.     STR_FUNCTIONLIST_UNICONIFY,
  543.     STR_FUNCTIONLIST_USER_FTYPE1,
  544.     STR_FUNCTIONLIST_USER_FTYPE2,
  545.     STR_FUNCTIONLIST_USER_FTYPE3,
  546.     STR_FUNCTIONLIST_USER_FTYPE4,
  547.     STR_FUNCTIONLIST_VERIFY,
  548.     STR_FUNCTIONLIST_VERSION};
  549.  
  550. struct Border *gadget_dog_sel_border,*gadget_dog_unsel_border;
  551. struct Border *gadget_sel_border,*gadget_unsel_border;
  552.  
  553. int x_off,y_off,x_bot,y_bot;
  554. char help_ok;
  555. int paint_state,paint_fg=1,paint_bg=0;
  556.  
  557. int screen_depth;
  558.  
  559. struct ColourTable screen_pens[16];
  560.  
  561. short colour_box_xy[2][16][4],colour_box_num;
  562.  
  563. struct ScreenMode *curmode;
  564. ULONG palette_backup[48];
  565. struct DOpusRemember *borderkey;
  566. short palettegad_xy[16][4];
  567. int bpg;
  568.  
  569. char *left_right_cycle[3];
  570.